package vista;

import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;

public class InterfazGraficaIngrediente 
{
	 private JButton btnGuardar,btnModificar,btnEliminar,btnCancelar,btnSalir,
                     btnSiguiente,btnAtras,btnPrimero,btnUltimo;
     private JTextField txtCodigo,txtNombreCorto,txtNombreLargo,txtUnidadMedida,txtCosto,txtExistencia;
     private Ventana ventana;
     
     public InterfazGraficaIngrediente()
     {
    	ImageIcon imgIngrediente= new ImageIcon(getClass().getResource("imagenes" + File.separator + "ingredientes.png"));
     	ImageIcon imgSiguiente= new ImageIcon(getClass().getResource("imagenes" + File.separator + "siguiente.gif"));
     	ImageIcon imgAtras= new ImageIcon(getClass().getResource("imagenes" + File.separator + "atras.gif"));
     	ImageIcon imgPrimero= new ImageIcon(getClass().getResource("imagenes" + File.separator + "primero.gif"));
     	ImageIcon imgUltimo= new ImageIcon(getClass().getResource("imagenes" + File.separator + "ultimo.gif"));
     	
        ImageIcon imgGuardar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "guardar.png"));
        ImageIcon imgModificar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "modificar.png"));
        ImageIcon imgEliminar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "eliminar.png"));
        ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
        ImageIcon imgSalir= new ImageIcon(getClass().getResource("imagenes" + File.separator + "salir.png"));
     
        FabricaAbstractaVentana fabricaVentanas= FabricaAbstractaVentana.getInstance();
		ventana= fabricaVentanas.crearVentanaIndependiente();
		
		ventana.asignarTitulo("Ingredientes");
		
		JLabel lblTitulo= new JLabel("INGREDIENTES");
        JLabel lblCodigo= new JLabel("Codigo:");
        JLabel lblNombreCorto= new JLabel("Nombre Corto:");
        JLabel lblNombreLargo= new JLabel("Nombre Largo:");
        JLabel lblUnidadMedida= new JLabel("UnidadMedida:");
        JLabel lblCosto= new JLabel("Costo:");
        JLabel lblExistencia= new JLabel("Existencia:");
        
        
        JLabel lblLogo= new JLabel(imgIngrediente);
        
        JToolBar barraHerramientas= new JToolBar();
       
        
        /*Botones de Navegacion*/
        JToolBar barraNavegacion= new JToolBar();
        
        barraNavegacion.setFloatable(false);
        barraNavegacion.setOpaque(false);
        barraNavegacion.setBorderPainted(false);
        
        btnSiguiente= new JButton(imgSiguiente);
        btnAtras= new JButton(imgAtras);
        btnPrimero= new JButton(imgPrimero);
        btnUltimo= new JButton(imgUltimo);
        
        btnSiguiente.setActionCommand("Siguiente");
        btnAtras.setActionCommand("Atras");
        btnPrimero.setActionCommand("Primero");
        btnUltimo.setActionCommand("Ultimo");
        
        btnPrimero.setToolTipText("Primero");
        btnAtras.setToolTipText("Atras");
        btnSiguiente.setToolTipText("Siguiente");
        btnUltimo.setToolTipText("Ultimo");
        
        barraNavegacion.add(btnPrimero);
        barraNavegacion.add(btnAtras);
        barraNavegacion.add(btnSiguiente);
        barraNavegacion.add(btnUltimo);
        /********Fin de botones de Navegacion*******/
       
        btnGuardar= new JButton("GUARDAR",imgGuardar);
        btnModificar= new JButton("MODIFICAR",imgModificar);
        btnEliminar= new JButton("ELIMINAR",imgEliminar);
        btnCancelar= new JButton("CANCELAR",imgCancelar);
        btnSalir= new JButton("SALIR",imgSalir);
        
        
        txtCodigo= new JTextField();
        txtNombreCorto= new JTextField();
        txtNombreLargo= new JTextField();
        txtUnidadMedida= new JTextField();
        txtCosto= new JTextField();
        txtExistencia= new JTextField();
        
        txtExistencia.setEnabled(false);
        
        txtCodigo.setName("txtCodigo");
        txtNombreCorto.setName("txtNombreCorto");
        txtNombreLargo.setName("txtNombreLargo");
        txtUnidadMedida.setName("txtUnidadMedida");
        txtCosto.setName("txtCosto");
        txtExistencia.setName("txtExistencia");
       

        barraHerramientas.setFloatable(false);
        barraHerramientas.setOpaque(false);
        barraHerramientas.setBorderPainted(false);

        btnGuardar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnGuardar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnGuardar.setOpaque(false);
        btnGuardar.setBorderPainted(false);

        btnModificar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnModificar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnModificar.setOpaque(false);
        btnModificar.setBorderPainted(false);

        btnEliminar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnEliminar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnEliminar.setOpaque(false);
        btnEliminar.setBorderPainted(false);

        btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnCancelar.setOpaque(false);
        btnCancelar.setBorderPainted(false);

        btnSalir.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
        btnSalir.setOpaque(false);
        btnSalir.setBorderPainted(false);
        
        barraHerramientas.add(btnGuardar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnModificar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnEliminar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnCancelar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnSalir);
        
        lblTitulo.setFont(new Font(Font.SERIF,Font.BOLD,20));
        lblCodigo.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblNombreCorto.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblNombreLargo.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblUnidadMedida.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblCosto.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblExistencia.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        
        
        ventana.agregarComponente(lblLogo, 5, 60, 250, 190);
        ventana.agregarComponente(lblCodigo, 250, 60, 100, 20);
        ventana.agregarComponente(lblNombreCorto, 250, 100, 120, 20);    
        ventana.agregarComponente(lblNombreLargo, 250,140, 120, 20);
        ventana.agregarComponente(lblUnidadMedida, 250, 180, 120, 20);
        ventana.agregarComponente(lblCosto,250, 220, 200, 20);
        ventana.agregarComponente(lblExistencia, 250, 260, 200, 20);
        ventana.agregarComponente(txtCodigo,385,60,139,25);
        ventana.agregarComponente(txtNombreCorto,385,100,240,25);
        ventana.agregarComponente(txtNombreLargo,385, 140, 240, 25);
        ventana.agregarComponente(txtUnidadMedida,385,180,240,25);
        ventana.agregarComponente(txtCosto,385,220,240,25);
        ventana.agregarComponente(txtExistencia,385,260,240,25);
        ventana.agregarComponente(barraNavegacion,240,310,200,30); 
        ventana.agregarComponente(barraHerramientas,98,360,650,90);
        ventana.agregarComponente(lblTitulo,260,10,180,30);
        
        ventana.asignarTamanio(680,500);     
     }
     
     public void actualizarInfo(String codigo,String nombreCorto, String nombreLargo,
             String unidadMedida, double costo, double existencia)
     {

        txtCodigo.setText(codigo);
        txtNombreCorto.setText(nombreCorto);
        txtNombreLargo.setText(nombreLargo);
        txtUnidadMedida.setText(unidadMedida);
        txtCosto.setText(String.valueOf(costo));
        txtExistencia.setText(String.valueOf(existencia));

     }
     
     public void addListener(KeyListener escuchador)
     {
          txtCodigo.addKeyListener(escuchador);
          txtNombreCorto.addKeyListener(escuchador);
          txtNombreLargo.addKeyListener(escuchador);
          txtUnidadMedida.addKeyListener(escuchador);
          txtCosto.addKeyListener(escuchador);
          txtExistencia.addKeyListener(escuchador);
     }
     
     public void addListener(ActionListener escuchador)
     {
     	btnGuardar.addActionListener(escuchador);
         btnEliminar.addActionListener(escuchador);
         btnModificar.addActionListener(escuchador);
         btnCancelar.addActionListener(escuchador);
         btnSalir.addActionListener(escuchador);
      
         btnSiguiente.addActionListener(escuchador);
         btnAtras.addActionListener(escuchador);
         btnPrimero.addActionListener(escuchador);
         btnUltimo.addActionListener(escuchador);
     }
     
     public void addListener(WindowListener escuchador)
 	 {
 	   ventana.addListener(escuchador);
 	 }
     
     public void addListener(FocusListener escuchador)
     {
     	txtCodigo.addFocusListener(escuchador);
     	
     	
     }
     
     public void visualizarVentana()
 	 {
 		ventana.visualizar();
 	 }
     
     public void descargarMemoria()
 	 {
 		ventana.descargarMemoria();
 	 }
     
     public void habilitarBotonActualizar(String boton)
     {
     	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
     	   btnGuardar.setEnabled(true);
     	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
     	   btnEliminar.setEnabled(true);
     	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
     	   btnModificar.setEnabled(true);
     	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
      	   btnCancelar.setEnabled(true);
     	
     }
     
     public void deshabilitarBotonActualizar(String boton)
     {
     	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
     	   btnGuardar.setEnabled(false);
     	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
     	   btnEliminar.setEnabled(false);
     	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
     	   btnModificar.setEnabled(false);
     	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
      	   btnCancelar.setEnabled(false);
     	
     }
     
     public void habilitarNavegacion()
     {
     	btnSiguiente.setEnabled(true);
     	btnAtras.setEnabled(true);
     	btnPrimero.setEnabled(true);
     	btnUltimo.setEnabled(true);
     }
     
     public void deshabilitarNavegacion()
     {
     	btnSiguiente.setEnabled(false);
     	btnAtras.setEnabled(false);
     	btnPrimero.setEnabled(false);
     	btnUltimo.setEnabled(false);
     }
     
     public void limpiarTextos()
     {
     	txtNombreCorto.setText("");
     	txtNombreLargo.setText("");
     	txtUnidadMedida.setText("");
     	txtCosto.setText("");
     	txtExistencia.setText("0");
     }
       
     public String getCodIngrediente()
     {
     	return txtCodigo.getText();
     }
     
     public String getNombreCorto()
     {
     	return txtNombreCorto.getText();
     }
     
     public String getNombreLargo()
     {
     	return txtNombreLargo.getText();
     }
     public String getUnidadMedida()
     {
     	return txtUnidadMedida.getText();
     }
     
     public double getCosto()
     {
     	return Double.parseDouble(txtCosto.getText());
     }
     
     public double getExistencia()
     {
     	return Double.parseDouble(txtExistencia.getText());
     }
     
}
